ABC313 C - Approximate Equalization 2
https://atcoder.jp/contests/abc313/tasks/abc313_c
提出
TLE
code: python
from collections import Counter
n = int(input())
a = list(map(int, input().split()))
# 4,7,3,7
# 4,6,4,7
# 5,6,4,6
# 5,6,5,5
# max - 1, min + 1
maxa = max(a)
mina = min(a)
ans = 0
c = Counter(a)
while abs(maxa - mina) >= 2:
if cmaxa:
cmaxa -= 1
cmaxa - 1 += 1
else:
maxa -= 1
cmaxa -= 1
cmaxa - 1 += 1
if cmina:
cmina -= 1
cmina + 1 += 1
else:
mina += 1
cmina -= 1
cmina + 1 += 1
ans += 1
print(max(ans - 1, 0))
解答
code: python
n = int(input())
a = list(map(int, input().split()))
suma = sum(a)
ave = suma // n
remain = suma % n
b = ave * n
for i in range(remain):
bi += 1
a.sort()
b.sort()
ans = 0
for i in range(n):
ans += abs(ai - bi)
print(ans//2)
テーマ
メモ
【AtCoder】ABC313 – C問題について解説【Python】
提出
code: python
n = int(input())
a = sorted(list(map(int, input().split())))
# print(a)
# 3, 4, 7, 7
# 2, 3, 4, 4, 8, 999999990, 999999991, 999999993, 999999997, 999999999
# TLE
ans = 0
for i in range(n//2):
j, k = ai, an-i-1
while k - j > 1:
j += 1
k -= 1
ans += 1
print(ans)